/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.forward.mobile.optitrans.util;

import com.forward.mobile.optitrans.domain.Chauffeur;
import com.forward.mobile.optitrans.domain.ClientParam;
import com.forward.mobile.optitrans.domain.Vehicule;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;
import com.google.gson.stream.JsonWriter;
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.util.List;
import org.json.JSONException;
import org.json.JSONObject;

/**
 *
 * @author Tchiediougou
 */
public class GsonUtils {

  

    public static JsonObject toGson(ClientParam clientParam, List<Vehicule> vehicules, List<Chauffeur> chauffeurs) throws JSONException {
        GsonBuilder builder = new GsonBuilder();
        Gson gson = builder.create();
        Type vehiculeType = new TypeToken<List<Vehicule>>() {
        }.getType();
        
        Type chauffeurType = new TypeToken<List<Chauffeur>>() {
        }.getType();
       
        JsonObject jsonObject=new JsonObject();
        JsonParser jsonParser = new JsonParser();
        JsonElement clientPram = jsonParser.parse(gson.toJson(clientParam));
        JsonElement vehiculeElement = jsonParser.parse(gson.toJson(vehicules, vehiculeType));
        JsonElement chauffeurElement = jsonParser.parse(gson.toJson(chauffeurs, chauffeurType));
        jsonObject.add("clientparam", clientPram);
        jsonObject.add("vehicules", vehiculeElement);
        jsonObject.add("chauffeurs", chauffeurElement);
        return jsonObject;


    }
}
